require('dotenv').config(); //加载环境变量
const express = require('express');
const app = express();  //创建express应用实例
const morgan = require('morgan');
const cors = require('cors');
const helmet = require('helmet');
const userRouter = require('./routes/user');


app.use(morgan('dev')); //简洁格式的日志
app.use(cors());    //CORS中间件（允许所有员跨域，生产环境需要限制）
app.use(helmet());

// 解析 JSON 请求体（用于 POST/PUT 等）
app.use(express.json());

// 解析表单数据（用于传统表单提交）
app.use(express.urlencoded({ extended: true })); // extended: true 支持复杂对象
app.use('/user', userRouter);   //所有/user开头的路由由userRouter处理


// 静态文件
app.use(express.static('public'));

// 自定义中间件：记录请求处理时间
app.use((req, res, next) => {
    const start = Date.now();
    res.on('finish', ()=>{  //响应完成后触发
        const duration = Date.now() - start;
        console.log(`${req.method} ${req.url} - ${duration}ms`);
    })
    next;
})

// 监听端口（默认3000）
const PORT = process.env.PORT || 3000;
app.listen(PORT, ()=>{
    console.log(`服务启动，监听端口:${PORT}`)
})